package com.shareyi.baseproject.kernel.common.event;


import com.shareyi.baseproject.kernel.common.retry.RetrySubscriberAware;

import java.util.Set;

/**
 * 事件处理器, 监听器接收到事件后，依据事件类型和参数
 * 转发给实际的业务处理器
 *
 * @author david
 * @date 2020-03-17
 */
public interface EventHandler<T extends Event> extends RetrySubscriberAware {

    /**
     * 处理event
     *
     * @param event
     */
    void handleEvent(T event);

    /**
     * 支持的命令类型
     *
     * @return
     */
    Set<String> supportCmd();
}
